package br.com.stefanini.sfs.managedBean;


import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import util.SFSconstantes;

import br.com.sfs.ejb.entity.Postagem;
import br.com.stefanini.ejb.sessionBean.PostagemSessionBean;

@ManagedBean
@RequestScoped
public class PostagemManagedBean  extends BaseManagedBean{
	
	@EJB
	private PostagemSessionBean postagemSessionBean;
	private Postagem postagem;
	private List<Postagem> todosAssuntos;
	private List<Postagem> postagemPorAssunto;
	private List<Postagem> postagemPorTitulo;
	private List<Postagem> todasPostagens;
	private String assuntoSelecionado;
	
	public PostagemManagedBean() {
		super();
	}

	@PostConstruct
	public void init(){
		if (postagem == null) {
			postagem = new Postagem();
		}
		todasPostagens = listarTodasPostagens();
		todosAssuntos = listarAssuntos();
	}	
	public String ListarTopico(){
		postagemSessionBean.setAssunto(postagem.getAssunto());
		return SFSconstantes.PAGINA_LISTAR_POR_ASSUNTO;
	}
	
	
	public String criaTopico(){
		postagem.setAssunto(postagemSessionBean.getAssunto());
		return SFSconstantes.PAGINA_INCLUIR;
	}
	
	public String incluirPostagem(){
		if(UsuarioSessaoManagedBean.getInstance().getDadosSessao() != null){		
			this.postagem.setUsuario( UsuarioSessaoManagedBean.getInstance().getDadosSessao());
			postagem.setDataPostagem(new Date());
			postagem.setAssunto(postagemSessionBean.getAssunto());
			postagemSessionBean.inserirPostagem(postagem);
			addMessageInfo("Postagem feita com sucesso !");
			postagemSessionBean.setAssunto(null);
			return SFSconstantes.PAGINA_POSTADA;
		}else{
			addMessageError("Precisa estar logado para postar");
			return null;
		}
	
	}
	
	public List<Postagem> listarTodasPostagens(){
		
		todasPostagens = postagemSessionBean.listarTodasPostagems();
		return todasPostagens;
	}
	
	
	public List<Postagem> listarPostagemPorAssuntos(String assunto){
		
		postagemPorAssunto = new ArrayList<Postagem>();
		postagemPorAssunto = postagemSessionBean.listarPostagensPorAssunto(assunto);
		
		return postagemPorAssunto;
	}

	public List<Postagem> listarAssuntos(){
		
		todosAssuntos = new ArrayList<Postagem>();
		todosAssuntos = postagemSessionBean.listarTodosAssuntos();
		
		return todosAssuntos;
	}
	
	public List<Postagem> listarPostagemPorTitulo(String titulo){
		
		postagemPorTitulo = new ArrayList<Postagem>();
		postagemPorTitulo = postagemSessionBean.listarPostagemPorTitulo(titulo);
		
		
		return postagemPorTitulo;
	}
	
	/***************************************************************/

	public Postagem getPostagem() {
		return postagem;
	}

	public void setPostagem(Postagem postagem) {
		this.postagem = postagem;
	}

	public List<Postagem> getTodosAssuntos() {
		return todosAssuntos;
	}

	public void setTodosAssuntos(List<Postagem> todosAssuntos) {
		this.todosAssuntos = todosAssuntos;
	}

	public List<Postagem> getPostagemPorAssunto() {
		return postagemPorAssunto;
	}

	public void setPostagemPorAssunto(List<Postagem> postagemPorAssunto) {
		this.postagemPorAssunto = postagemPorAssunto;
	}

	public List<Postagem> getPostagemPorTitulo() {
		return postagemPorTitulo;
	}

	public void setPostagemPorTitulo(List<Postagem> postagemPorTitulo) {
		this.postagemPorTitulo = postagemPorTitulo;
	}

	public List<Postagem> getTodasPostagens() {
		return todasPostagens;
	}

	public void setTodasPostagens(List<Postagem> todasPostagens) {
		this.todasPostagens = todasPostagens;
	}

}
